home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Surfer: Getting Started
/
Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin
/
pc
/
mac
/
bonus
/
peter_le
/
finger-1
/
my_units
/
myoomenu.uni
< prev
next >
Wrap
Text File
|
1992-02-24
|
3KB
|
135 lines
unit OOMenus;
{ This code is part of the Finger/Fingerd source code, written in THINK Pascal 4 }
{ Copyright 1991-1992 Peter N Lewis }
{ If you use this code, you must give me credit in your about box and documentation }
{ This is part of my generic library of routines }
interface
var
editEnabled: boolean;
procedure InitOOMenus (defaultproc: procptr; hstr: str31);
procedure FinishOOMenus;
procedure DoDefaultMenu (themenu, theitem: integer);
function SetOOMenuBar: boolean;
implementation
uses
Traps, Balloons, MyTypes, MyUtils, MyUtilities, BaseGlobals, MyFMenus, OOMainLoop, OOAboutHelp;
function SetOOMenuBar: boolean;
begin
SetOOMenuBar := FrontObject.SetMenuBar;
end;
procedure DoDefaultMenu (themenu, theitem: integer);
var
save: grafPtr;
DAName: str255;
oe: OSErr;
begin
if themenu = M_Apple then begin
GetPort(save);
GetItem(GetMHandle(M_apple), theitem, DAName);
oe := OpenDeskAcc(DAName);
SetPort(save);
end
else if themenu = M_Edit then begin
FrontObject.DoEditMenu(theitem);
end;
end;
procedure SetAboutMenu (themenu, theitem: integer);
begin
SetIDItemEnable(themenu, theitem, not ISWObjectFront(about_object));
end;
procedure SetHelpMenu (themenu, theitem: integer);
begin
SetIDItemEnable(themenu, theitem, not ISWObjectFront(help_object));
end;
procedure DoClose;
begin
FrontObject.DoClose
end;
procedure SetCloseMenu (themenu, theitem: integer);
var
fw: windowPtr;
begin
fw := FrontWindow;
if fw = nil then
SetIDItemEnable(themenu, theitem, false)
else
SetIDItemEnable(themenu, theitem, windowPeek(fw)^.goAwayFlag);
end;
procedure SetEditMenus (menu, item: integer);
begin
FrontObject.SetEditMenuItem(item);
end;
procedure DoQuit;
begin
quitNow := true;
end;
{$S Init}
procedure InitOOMenus (defaultproc: procptr; hstr: str31);
var
mh: menuHandle;
oe: OSErr;
dummyb: boolean;
begin
quitNow := false;
editEnabled := true;
if defaultproc = nil then
defaultproc := @DoDefaultMenu;
InitFMenus(defaultproc);
InitOOAboutHelp;
MH_Apple := GetFMenu(M_Apple);
AddResMenu(MH_Apple, 'DRVR');
InsertMenu(MH_Apple, 0);
MH_File := GetFMenu(M_File);
InsertMenu(MH_File, 0);
MH_Edit := GetFMenu(M_Edit);
InsertMenu(MH_Edit, 0);
M_HM_Help_I := -1;
if has_HelpMgr and (hstr <> '') then begin
oe := HMGetHelpMenuHandle(mh);
if (oe = noErr) and (mh <> nil) then begin
AppendMenu(mh, hstr);
M_HM_Help_I := CountMItems(mh);
AddFCommand(kHMHelpMenuID, M_HM_Help_I, CHelp);
end;
end;
SetFBoth(Cabout, @DoOOAbout, @SetAboutMenu);
SetFBoth(Chelp, @DoOOHelp, @SetHelpMenu);
SetFBoth(Cclose, @DoClose, @SetCloseMenu);
SetFCommand(Cquit, @DoQuit);
SetFSetMenu(Cundo, @SetEditMenus);
SetFSetMenu(Ccut, @SetEditMenus);
SetFSetMenu(Ccopy, @SetEditMenus);
SetFSetMenu(Cpaste, @SetEditMenus);
SetFSetMenu(Cclear, @SetEditMenus);
SetFSetMenu(Cselectall, @SetEditMenus);
SetFMenus;
dummyb := SetOOMenuBar;
DrawMenuBar;
end;
{$S Term}
procedure FinishOOMenus;
begin
FinishFMenus;
end;
end.